As the computer industry evolves, demands for memory have out-paced the technology of available memory devices. One of these demands is high speed memory compatibility. Thus, in a computer system, such as a personal computer or other computing system, memory subsystems have become an influential component toward the overall performance of the system. Emphasis is now on refining and improving memory devices that provide affordable, zero-wait-state operations.
Generally, volatile memories are either DRAM or static RM (xe2x80x9cSRAMxe2x80x9d). Each SRAM cell includes plural transistors. Typically the data stored in a SRAM cell is stored by the state of a flip-flop formed by some of the transistors. As long as power is supplied, the flip-flop keeps its data; it does not need refreshing. In a DRAM cell, on the other hand, there typically is one transistor, and data is stored in the form of charge on a capacitor that the transistor accesses. The capacitor dissipates its charge and needs to be refreshed.
These two types of volatile memories have respective advantages and disadvantages. With respect to memory speed, the SRAM is faster than the DRAM due, partially at least, to the nature of the cells. The disadvantage, however, is that because there are more transistors, the SRAM memory is less dense than a DRAM of the same physical size. For instance, static RAMs traditionally have a maximum of one-fourth the number of cells of a DRAM which uses the same technology.
While the DRAM has the advantage of smaller cells and thus higher cell density (and lower cost per bit), one disadvantage is that the DRAM must refresh its memory cells whereas the SRAM does Inot. While the DRAM refreshes and precharges, access to the memory cells is prohibited. This creates an increase in access time, which drawback the static RAUM does not suffer.
However, the speed and functionality of current DREMS are often emphasized less than memory size (storage capacity) and cost. This is evidenced by the fact that DRAM storage capacity density has increased at a rate an order of magnitude greater than its speed. While there has been some improvement in access tire, systems using DRAMs generally have had to achieve their speed elsewhere.
In order to increase system speed, cache memory techniques have recently been applied to DRAM main memory. These approaches have generally been implemented on a circuit board level. That is, a cache memory is frequently a high-speed buffer interposed on the circuit board between the processor chip and the main memory chip. While some efforts have been made by others to integrate a cache with DRAM, we first address the board level approach.
FIG. 1 indicates a prior art configuration (board-level) wherein a processor chip 10 is configured with a cache controller 12 and a cache memory 14. The main purpose of the cache memory is to maintain frequently accessed data for high speed system access. Cache memory 14 (sometimes called xe2x80x9csecondary cache static RAMxe2x80x9d) is loaded via a multiplexer 16 from DRAMs 20, 22, 24 and 26. Subsequently, data is accessed at high speeds if stored in cache memory 14. If not, DRAMs 20, 22, 24 and/or 26 load the sought data into cache memory 14. As seen in FIG. 1, cache memory 14 may comprise a SRAM, which is generally faster than DRAMS 20-26.
Various approaches have been proposed for cache memory implementation. These approaches include controlling external cache memory by a controller, such as cache memory 14 and cache controller 12 in FIG. 1, or discrete proprietary logic. Notwithstanding its benefits, cache memory techniques complicate another major problem that exists in system design. Memory components and microprocessors are typically manufactured by different companies. This requires the system designer to effectively bridge these elements, using such devices as the cache controller 12 and the multiplexer 16 of FIG. 1. These bridge components are usually produced by other companies. The different pin configurations and timing requirements of these components makes interfacing them with other devices difficult. Adding a cache memory that is manufactured by yet another company creates further design problems, especially since there is no standard for cache implementation.
Exacerbating the system design problems is the disadvantage that the use of external cache memory (such as cache memory 14) compromises the main storage access speed. There are mainly two reasons for this compromise. First, and most significant, the main storage access is withheld until a xe2x80x9ccache missxe2x80x9d is realized. The penalty associated with this miss can represent up to two wait states for a 50 MHz system. This is in addition to the time required for a main memory access. Second, the prioritized treatment of physical routing and buffers afforded the external cache is usually at the expense of the main memory data and address access path. As illustrated in FIG. 1, data from DRAMs 20, 22, 24 and 26 can be accessed only through cache memory 14. The actual delay may be small, but adds up quickly.
A third problem associated with separate cache and main memory is that the time for loading the cache memory from the main memory (xe2x80x9ccache fillxe2x80x9d) is dependent on the number of inputs to the cache memory from the main memory. Since the number of inputs to the cache memory from the main memory is usually substantially less than the number of bits that the cache memory contains, the cache fill requires many clock cycles. This compromises the speed of the system.
A memory architecture that has been used or suggested for video RAMs (xe2x80x9cVRAMsxe2x80x9d) is to integrate serial registers with a main memory. VRAMs are specific to video graphics applications. A VRAM may comprise a DRAM with high speed serial registers allowing an additional access port for a line of digital video data. The extra memory used here is known as a SAM (serially addressed memory), which is loaded using transfer cycles. The SAM""S data is output by using a serial clock Hence, access to the registers is serial, not random. Also, there is continuous access to the DRAM so refresh is not an issue as it is in other DRAM applications.
Another implementation that is expected to come to market in 1992 of on-chip cache memory will use a separate cache and cache controller sub-system on the chip. It uses full cache controllers and cache memory implemented in the same way as it would be if external to the chip, i.e. a system approach. This approach is rather complicated and requires a substantial increase in die size. Further, the loading time of the cache memory from the main memory is constrained by the use of input/output cache access ports that are substantially fewer in number than the number of cache memory cells. A cache fill in such a manner takes many clock cycles, whereby system access speed suffers. Such an approach is, in the inventors"" views, somewhat cumbersome and less efficient than the present invention.
Still another problem in system design arises when the system has both (a) interleaved memory devices together with (b) external cache memory. Interleaving assigns successive memory locations to physically different memory devices, thereby increasing data access speed. Such interleaving is done for high-speed system access such as burst modes. The added circuitry for cache control and main memory multiplexing usually required by external cache memory creates design problems for effective interleaved memory devices.
Another problem with the prior art arises when memory capacity is to increase. Adding more memory would involve adding more external SRAM cache memory and more cache control logic. For example, doubling the memory size in FIG. 1 requires not only more DRAM devices required but also another multiplexer and possibly another cache controller. This would obviously add to system power consumption, detract from system reliability, decrease system density, add manufacturing costs and complicate system design.
Another problem concerns the cost of manufacturing a system with an acceptable cache hit probability. When using external cache memory, manufacturers allocate a certain amount of board area for the main memory. A smaller area is allocated for the external cache. Usually, it is difficult to increase the main memory and the external cache memory while maintaining an acceptable cache hit probability. This limitation arises from the dedication of more board area for the main memory than for external cache.
A further problem with system speed is the need for circuitry external to the main memory to write xe2x80x9cpostxe2x80x9d data. Post data refers to data latched in a device until it is needed. This is done because the timing requirement of the component needing the data does not synchronize with the component or system latching the data. This circuitry usually causes timing delays for the component or system latching the data.
As stated supra, access to the DRAM memory cells during a precharge and refresh cycle was prohibited in the prior art. Some prior art approaches have tried to hide the refresh in order to allow access to DRAM data. One DRAM arrangement maintained the data output during a refresh cycle. The drawback of this arrangement was that only the last read data was available during the refresh. No new data read cycle could be executed during the refresh cycle.
A pseudo-static RAM is another arrangement that attempted to hide the refresh cycle. The device was capable of executing internal refresh cycles. However, any attempted data access during the refresh cycle would extend the data access time, in a worst case scenario, by a cycle time (refresh cycle time plus read access time). This arrangement did not allow true simultaneous access and refresh, but used a time division multiplexing scheme to hide the refresh cycle.
Another way to hide the refresh cycle is to interleave the RAM memory on the chip. When a RAM memory block with even addresses is accessed, the odd memory block is refreshed and vice-versa. This type of implementation requires more timing control restraints which translate to a penalty in access time.
Another type of problem arises when considering the type of access modes to the main memory. One type of access is called page mode, in which several column addresses are synchronously applied to an array after a row address has been received by the memory. The output data access time will be measured from the timing clock edge (where the column address is valid) to the appearance of the data at the output.
Another type of access mode is called static column mode wherein the column addresses are input a synchronously. Access can occur in these modes only when RAS is active (low), and a prolonged time may be required in the prior art.
When manufacturing chips that support these access types, only one of these access types can be implemented into the device. Usually, one of the last steps in the making of the memory chip will determine if it will support either type of access. Thus, memory chips made this way do not offer both access modes. This induces an added expense in that the manufacturer must use two different processes to manufacture the two types of chips.
To overcome these problems, small modifications added to a component, such as a DRAM, may yield an increase in system performance and eliminate the need for any bridging components. To successfully integrate the modification with the component, however, its benefit must be relatively great or require a small amount of die space. For example, DPAM yields must be kept above 50% to be considered producible. Yields can be directly correlated to die size. Therefore, any modifications to a DRAM must take into account any die size changes.
In overcoming these problems, new DRAM designs have become significant. The greatest disadvantage to caching within DRAMs has been that DRAMs are too slow. The present invention in one of its aspects seeks to change the architecture of the DRAM to take full advantage of high caching speed that may now be obtainable.
One way to meet this challenge is to integrate the functions of the main storage and cache. Embedding the cache memory within localized groups of DRAM cells would take advantage of the chip""s layout. This placement reduces the amount of wire (conductive leads) used in the chip which in turn shortens data access times and reduces die size.
U.S. Pat. No. 5,025,421 to Cho is entitled xe2x80x9cSingle Port Dual RAM.xe2x80x9d It discloses a cache with typical DRAM bit lines connected to typical SPAM bit lines through pass gates. Reading and writing the SRAM and DRAM arrays occurs via a single port, which requires that input/output busses communicate with the DRAM bit lines by transmitting data through the SRAM bit lines. Using SRAM bit lines to access the DRAM array precludes any access other than refresh to the DRAM array while the SRAM array is being accessed, and conversely precludes access to the SRAM array while the DRAM array is being accessed, unless the data in the SRAM is the same data as in the currently accessed DRAM row. This is a functional constraint that is disadvantageous.
Moreover, the SRAM cells of Cho FIG. 1 are full SRAM cells, although his FIG. 4 may disclose using only a single latch (FF11) rather than an entire SRAM cell. However, the use of a single port with a simple latch raises a severe problem. Such an architecture lacks the ability to write data into the DRAM without corrupting the data in the SRAM latch. Hence, the FIG. 4 configuration is clearly inferior to Cho""s FIG. 1 configuration.
Another effort is revealed by U.S. Pat. No. 4,926,385 to Fujishima, Hidaka, et al., assigned to Mitsubishi, entitled, xe2x80x9cSemiconductor Memory Device With Cache Memory Addressable By Block Within Each Column.xe2x80x9d There are other patents along these lines by Fujishima and/or Hidaka. This one uses a row register like Cho FIG. 4. Two ports are used, but two decoders are called for. While this overcomes several of the problems of Cho, it requires a good deal more space consumed by the second column decoder and a second set of input/output switch circuitry. (Subsequent Fujishima/Hidaka patents have eliminated the second access port and second decoder and have reverted to the Cho FIG. 1 approach, despite its disadvantages.) Nevertheless, in this patent, the xe2x80x9ctagxe2x80x9d and data coherency control circuitry for the cache is external to the chip and is to be implemented by the customer as part of the system Sign. The xe2x80x9ctagxe2x80x9d refers to information about what is in the cache at any given moment. A xe2x80x9chitxe2x80x9d or xe2x80x9cmissxe2x80x9d indication is required to be generated in the system, external to the integrated circuit memory, and supplied to the chip. This leads to a complicated and slower system.
Other Fujishima, Hidaka, et al. U.S. patents include U.S. Pat. Nos. 5,111,386: 5,179,687; and 5,226,139.
Arimoto U.S. Pat. No. 5,226,009 is entitled, xe2x80x9cSemiconductor memory device supporting cache and method of driving the same.xe2x80x9d This detects whether a hit or miss occurs by using a CAM cell array. The basic arrangement is like the approach of Cho FIG. 1 but modified to collect DRAM data from an xe2x80x9cinterface driver,xe2x80x9d which is a secondary DRAM sense amplifier, rather than from the primary DRAM sense amplifiers. This architecture still accesses the DRAM bit lines via the SRAM bit lines and is plagued with the single port problem. Circuitry is provided to preserve coherency between the DRAM and the SRAM. A set of tag registers is discussed with respect to a system-level (off-chip) implementation in a prior art drawing. Arimoto implements his on-chip cache tag circuitry using a content addressable memory array. That approach allows N-way mapping, which means that a group of memory devices in the cache can be assigned to any row in any of N subarrays. For example, if an architecture is xe2x80x9c114-way associative,xe2x80x9d this means that there are four SRAM blocks, any of which can be written to by a DRAM. This method results in a large, expensive, and slow implementation of mapping circuitry. Using a C;M array for tag control has an advantage of allowing N-way association. However, the advantage of N-way association seems not to outweigh the disadvantage of the large and slow CAM array to support the N-way SRAM array.
Dye U.S. Pat. No. 5,184,320 is for a xe2x80x9cCached random access memory device and systemxe2x80x9d and includes on-chip cache control. The details of the actual circuitry are not disclosed, however. This patent also is directed to N-way association and considerable complication is added to support this.
Another piece of background art is Matick et al. U.S. Pat. No. 4,577,293 for a xe2x80x9cDistributed on-chip cache.xe2x80x9d It has 2-way associative cache implemented using a distributed (on-pitch) set of master-slave row register pairs. Full flexibility of access is provided by dual ports that are not only to the array but also to the chip itself. The two ports are totally independent, each having pins for full address input as well as data input/output. The cache control is on-chip.
Thus it should be appreciated that the art has heretofore often directed efforts in achieving N-way association. While this has led to complications, the art has thought that N-way association is the approach to follow.
The present invention, according to one of its aspects, rejects this current thinking and instead provides a streamlined architecture that not only includes on-chip cache control, but also operates so fast that the loss of N-way association is not a concern.
Therefore, it is a general object of this invention to overcome the above-listed problems.
Another object of the present invention is to isolate the cache memory data access operation from undesirable DRAM timing overhead operations, such as refresh and precharge.
A further object of the present invention is to eliminate the need for a external static RAM cache memory in high speed systems.
Still another object of the present invention is to insure cache/main memory data coherency.
Another object of this invention is to insure such data coherency in a fashion which minimizes overhead, so as to reduce any negative impact such circuitry might have on the random data access rate.
The present invention provides a high-speed memory device that is hybrid in its construction and is well-suited for use in high-speed processor-based systems. A preferred embodiment of the present invention embeds a set of tightly coupled row registers, usable for a static RAM function, in a high density DRAM, preferably on the very same chip as the DRAM array (or subarrays). Preferably, the row registers are located within or alongside the DRAM array, and if the DRAM is configured with subarrays, then multiple sets of row registers are provided for the multiple subarrays, preferably one set of row registers for each subarray. Preferably the row registers are oriented parallel to DRAM rows (word lines), orthogonal to DRAM columns (bit lines). The row registers operate at high speed relative to the DRAM. Preferably the number of registers is smaller than the number of bit lines in the corresponding array or subarray. In the preferred embodiment, one row register corresponds to two DRAM bit line pairs, but in other applications, one register could be made to correspond to another number of DRAM bit line pairs. Preferably selection circuitry is included to select which of the several bit line pairs will be coupled (or decoupled) from the corresponding row register.
Preferably the row registers are directly mapped, i.e. a one-way associative approach is preferred. Preferably the configuration permits extremely fast loading of the row registers by connecting DRAM bit lines to the registers via pass gates which selectively couple and decouple bit lines (bit line pairs) to the corresponding row registers. Thus, by selecting which bit line pairs are to be given access to the row registers, the sense amplifiers for example drive the bit lines to the voltages corresponding to the data states stored in a decoded row of DRAM cells and this is loaded quickly into the row registers. Thus, a feature of the present invention is a very quick cache fill.
The fast fill from the DRAM to the row registers provides a very substantial advantage. In the case of a read miss, mentioned below, a parallel load to the row registers is executed. Thereafter, each read from the same row is a read hit, which is executed at SRAM speeds rather than DRAM speeds.
Preferably the row registers are connected to a unidirectional output (read) port, and preferably this is a high impedance arrangement. That is, in the preferred embodiment, the registers are not connected to the source-drain path of the read port transistors, but instead they are connected to gate electrodes thereof. This leads to improvements in size and power.
The DRAM bit lines are preferably connected to a unidirectional input (write) port. In a circuit according to some aspects of the invention, the row registers can be decoupled from the DRAM bit lines and data could still be inputted to the DRAM bit lines via the write port. Moreover, even when the row registers are decoupled from the DRAM bit lines, data can be read from the row registers.
Preferably both the read and write ports operate off one decoder.
The configuration of an integrated circuit memory according to a related aspect of the invention will not require an input/output data bus connected to the sense amplifiers, since each DRAM subarray will be located between its corresponding set of row registers and the DRAM subarray""s corresponding set of sense amplifiers, and since the data input and output functions are executed on the row register side.
In addition to including row registers, preferably in a directly mapped configuration, a circuit using the present invention preferably integrates simple, fast control circuitry for the cache (registers). Hence the integrated circuit memory device preferably contains on-chip address compare circuitry, including at least one xe2x80x9clast read rowxe2x80x9d address latch and an address comparator. Where multiple subarrays are used, multiple sets of row registers are used, each having a respective xe2x80x9clast read rowxe2x80x9d and thus a respective xe2x80x9clast read rowxe2x80x9d register. Address and data latches, a refresh counter, and various logic for controlling the integrated circuit memory device also are preferably included on the chip.
Memory reads preferably always occur from the row registers. When an address is received by the memory device, the address comparator determines whether that address corresponds to an address of the row that was last read into the associated row register. When the address comparator detects a match (xe2x80x9chitxe2x80x9d), only the row register is accessed, and the data stored there is available from the addressed column at SRAM speeds. Subsequent reads within the row (burst reads, local instructions or data) will continue at that same high speed.
When a read xe2x80x9cmissxe2x80x9d is detected, the DRAM main memory is addressed and the addressed data is written into the row register. In the event of such a xe2x80x9cmiss,xe2x80x9d the first bit of data is available at the output at a slightly slower speed than a hit. Subsequent bits read from the row register will have the same extremely fast access as for a hit.
Since the data corresponding to the received address is read from the row register in both cases, and since according to another aspect of the invention in its preferred form the row register can be decoupled from the DRAM, the DRAM precharge can occur simultaneously and a synchronously without degrading overall system performance. The refresh counter and an independent refresh bus are implemented to allow the main memory (i.e., the arrayed DRAM cells) to be refreshed during row register reads.
Memory writes are preferably directed toward the main memory. When appropriate, i.e., in a xe2x80x9cwrite hit,xe2x80x9d the on-chip address comparator will also activate circuit elements to achieve a simultaneous write to the row registers. In this way, the data in the row register and the data in the main memory will be coherent for the same address. In a xe2x80x9cwrite miss,xe2x80x9d where data is to be written into DRAM addresses that are not the same as the xe2x80x9clast read rowxe2x80x9d for that particular DRAM block or subarray, the row register contents need not, and preferably will not, be overwritten. Moreover, changing rows during memory writes does not affect the contents of the row register until the row address specified writing becomes the same as the xe2x80x9clast read row.xe2x80x9d This allows the system (during write misses) to return immediately to the row register which had been accessed just prior to the write operation. Write posting can be executed without external data latches. Page mode memory writes can be accomplished within a single column address cycle time.
Without initiating a major read or write cycle, the row registers can be read under column address control. It is preferred that the chip is activated and the output is enabled.
The toggling of the on-chip address latch by the user allows the preferred embodiment of the present invention to operate in either a page or static column mode. Further, the zero nano-second hold allows the /RE signal to be used to multiplex the row and column addresses.
When a read hit occurs on an /RE initiated cycle, the internal row enable signal is not enabled and a DRAM access does not occur, thereby shortening the cycle time and the precharge required.
A novel and important aspect of the operation of such a DRAM with embedded row registers is the provision of zero-wait state random data accesses from the cache memory while the DRAM is being refreshed or recharged, or otherwise operated a synchronously.
Another salutary aspect of the invention is that within the array structure is embedded cache memory that allows quicker cache memory fill and optimization of die density.
Another aspect of the invention is the way in which pins are used. Functions heretofore included in /RAS and /CAS have been. reassigned to separate pins for refresh control, output enable control, and chip selection. The control signals /CAS and /RAS are replaced by a column address latch signal /CAL and a row enable signal /RE, each having a respective dedicated pin. This change in pin usage permits faster operation.
The invention also includes methods for operating a DRAM with embedded registers. A first method of operating the memory device may comprise the steps of: (1) initiating a major read or write cycle; (2) comparing the row address with the previous row address to determine whether the sought data is in the cache memory; (3) if in a read cycle, reading the data from the cache memory if it is stored there or loading the data into the cache memory from the main memory and then reading the data from the cache memory; and (4) if in a write cycle, writing only to the main memory if the data is not in the cache memory or writing to both main memory and cache memory if the data is in the cache memory.
A second method for operating the memory device may comprise the steps of: (1) refreshing a row of main memory; and (2) simultaneously and a synchronously reading the cache memory.